/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author 0197122
 */
public class MercadoriaDAO implements OperacoesDAO {

    private ArrayList<Mercadoria> mercadoria = new ArrayList();

    /*
     * @param obj é a mercadoria que será INSERIDA
     */
    @Override
    public void inserir(Object obj) {
        if (obj instanceof Mercadoria) {
            Mercadoria d = (Mercadoria) obj;
            mercadoria.add(d);
        }
    }

    /*
     * @param obj é titulo
     * @return false se não há o que excluir
     */
    @Override
    public boolean excluir(Object obj) {
        boolean achou = false;
        ArrayList pesquisa = pesquisar(obj);
        if (pesquisa.size() != 0) { //Encontrou alguma coisa
            mercadoria.removeAll(pesquisa);
            achou = true;
        }
        return achou;
    }

    /*
     * @param obj é a mercadoria com as informações alteradas exceto codigo
     */
    @Override
    public void editar(Object obj) {
        if (obj instanceof Mercadoria) {
            Mercadoria d = (Mercadoria) obj;
            int chave = d.getCodigo();
            for (int i = 0; i < mercadoria.size(); i++) {
                Mercadoria achou = mercadoria.get(i);
                if (chave==achou.getCodigo()) {
                    mercadoria.set(i, d);
                }
            }
        }
    }

    @Override
    public ArrayList pequisar() {
        return mercadoria;
    }

    /*
     * @param obj é o critério de pesquisa (titulo) que tem que ser do tipo String
     * @return uma coleção de todos os discos encontrados
     */
    @Override
    public ArrayList pesquisar(Object obj) {
        ArrayList<Mercadoria> retorno = new ArrayList();
        if (obj instanceof String) {
            Integer chave = (Integer) obj;
            Iterator<Mercadoria> it = mercadoria.iterator();
            while (it.hasNext()) {
                Mercadoria d = it.next();
                if (chave==d.getCodigo()) {
                    retorno.add(d);
                }
            }
        }
        return retorno;
    }
}